Zastosowanie interpretacyjnego uczenia maszynowego do przestrzennej analizy profili społeczno-demograficznych wpływających na wzorce głosowania w wyborach prezydenckich w USA

Zebranie Zakładu Geoinformacji i Pracowni Geoinformatyki Stosowanej, WNGiG

Adrian Nowacki, Anna Dmowska, Jarosław Jasiewicz

03-06-2025

Cel projektu


  • Celem bezpośrednim projektu było opracowanie przestrzennego profilu społeczno-demograficznego wpływającego na wzorce głosowania w wyborach prezydenckich w USA w latach 2008–2024 na poziomie hrabstw


  • Celem pośrednim było zbadanie możliwości zastosowania interpretacyjnego uczenia maszynowego na dużym zbiorze danych demograficznych


Wprowadzenie

Różne czynniki społeczno-ekonomiczne odgrywają kluczową rolę w kształtowaniu wyników wyborczych. Wzorce głosowania w wyborach prezydenckich USA zmieniają się w czasie i przestrzeni, odzwierciedlając reakcje społeczeństwa na zmienne warunki społeczno-ekonomiczne i polityczne.

Analizę zależności między strukturą demograficzną a preferencjami wyborczymi można prowadzić na dwa sposoby:

  • bezpośrednią – opartą na indywidualnych danych ankietowych, np. exit poll

  • pośrednią – wykorzystującą zagregowane na poziomie jednostek terytorialnych dane z obszernych, cyklicznych badań ankietowych

Wprowadzenie

Odpowiedzi uzyskane w ramach pośredniej metody są udostępniane w formie obszernych zbiorów danych z dużą liczbą zmiennych i wysokim poziomem współzależności między nimi, co utrudnia ich interpretację przy użyciu klasycznych metod statystycznych.


W tym celu stosuje się metody uczenia maszynowego, umożliwiające budowę złożonych modeli opisujących relacje między wynikami wyborczymi a zmiennymi je wyjaśniającymi.


Wiele zaawansowanych modeli wykrywa złożone wzorce w danych bez ujawniania struktury podejmowania decyzji, dlatego w tym celu stosuje się interpretacyjne uczenie maszynowe, które zwiększa przejrzystość złożonych modeli i wskazuje cechy najmocniej wpływające na ich wyniki.


Interpretacyjne uczenie maszynowe jest niezbędne do określenia przestrzennego profilu społeczno-demograficznego wpływającego na wzorce głosowania wyborczego

Dane

American Community Survey (ACS) to ogólnokrajowe, coroczne badanie prowadzone przez Biuro Spisowe Stanów Zjednoczonych (ang. U.S. Census Bureau).


Projekt dostarcza szczegółowych danych społeczno-ekonomicznych i demograficznych o ludności USA, a jego celem jest dostarczanie aktualnych i dokładnych danych, które wspierają decyzje rządów, organizacji pozarządowych, badaczy i firm.

W projekcie wykorzystano uśrednione dane z pięcioletnich zakresów dla każdego roku wyborczego:

  • wybory 2008 (ACS 2005-2009)
  • wybory 2012 (ACS 2008-2012)
  • wybory 2016 (ACS 2012-2016)
  • wybory 2020 (ACS 2016-2020)
  • wybory 2024 (ACS 2019-2023)

Dane

tonmcg/US_County_Level_Election_Results_08-24

Wyniki wyborów prezydenckich w USA pochodzą z otwartego repozytorium GitHub autorstwa Tony’ego McGoverna.


Zbiór dostarcza przetworzone wyniki głosowań z lat 2008-2024, zintegrowane z różnych oficjalnych źródeł stanowych.

Dane obejmują liczbę, różnicę oraz udział procentowy głosów dla wszystkich hrabstw kontynentalnych Stanów Zjednoczonych w podziale na:

Demokratów Republikanów

Barack Obama

Barack Obama

2008

John McCain

Barack Obama

Barack Obama

Barack Obama

2012

Mitt Romney

Barack Obama

Barack Obama

Hillary Clinton    

2016

Donald Trump

Barack Obama

Barack Obama

Joe Biden             

2020

Donald Trump

Barack Obama

Barack Obama

Kamala Harris    

2024

Donald Trump

Barack Obama

Metody

flowchart TB
  subgraph przygotowanie_danych ["I. Przygotowanie danych"]
    A1[/Przygotowanie zmiennych demograficznych/]
    A2[/Pozyskanie wyników wyborczych/]
  end
  subgraph PCA ["II. Analiza składowych głównych"]
    direction LR
    B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
    B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
  end  
    B3[\Zbiór 12 komponentów\]
    B4[\Tabela ładunków czynnikowych\]
    B5[\Mapy wartości składowych głównych\]
    B6[\Wpływ zmiennych na składowe główne\]
    A1 --> PCA
    B1 --> B2 
    PCA --> B3
    PCA --> B4
    PCA --> B5
    PCA --> B6
  subgraph Modelowanie ["III. Uczenie maszynowe"]
    direction LR
    C0[Połączenie i przygotowanie danych]
    C1[Trenowanie modeli]
    C2[Ocena wyników modelowania]
    C3[Wybór najlepszego modelu]
  end
    A2 --połączenie zestawu z 12 komponentami--> Modelowanie
    B3 --> Modelowanie
    C0 --> C1 --> C2 --> C3
    Modelowanie --> SHAP
  subgraph SHAP ["IV. Interpretacja wyników modelowania"]
    D1[Obliczanie wartości SHAP]
  end
    D2[\Wykresy ważności zmiennych\]
    D3[\Wykresy zależności\]
    D4[\Mapy wpływu komponentów\]
    SHAP --> D2
    SHAP --> D3
    SHAP --> D4
    

Metody

Oprócz bazowych narzędzi języka R, w projekcie wykorzystano także szereg pakietów zewnętrznych, m.in.:

Przygotowanie danych
  • tidycensus – pobranie danych spisowych USA z Census API
  • dplyr – manipulacja danych tabelarycznych
  • sf – przetwarzanie i manipulacja danych wektorowych


PCA i modelowanie
  • factoextra – wizualizacja wyników PCA
  • ggplot2 – wizualizacja wyników w postaci map oraz wykresów
  • mlr3 – budowa, trenowanie i ocena modeli uczenia maszynowego
  • ranger – implementacja modelu lasów losowych (ang. Random Forest)
  • iml – interpretacja modeli uczenia maszynowego za pomocą metody SHAP


Wizualizacje wyników
  • ggplot2 – wizualizacja wyników w postaci map oraz wykresów
  • DT – wizualizacja danych tabelarycznych
  • shapviz – wizualizacja wyników SHAP

Analiza składowych głównych (PCA)

flowchart TB
  subgraph przygotowanie_danych ["I. Przygotowanie danych"]
    A1[/Przygotowanie zmiennych demograficznych/]
    A2[/Pozyskanie wyników wyborczych/]
  end
  subgraph PCA ["II. Analiza składowych głównych"]
    direction LR
    B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
    B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
  end  
    B3[\Zbiór 12 komponentów\]
    B4[\Tabela ładunków czynnikowych\]
    B5[\Mapy wartości składowych głównych\]
    B6[\Wpływ zmiennych na składowe główne\]
    A1 --> PCA
    B1 --> B2 
    PCA --> B3
    PCA --> B4
    PCA --> B5
    PCA --> B6
  subgraph Modelowanie ["III. Uczenie maszynowe"]
    direction LR
    C0[Połączenie i przygotowanie danych]
    C1[Trenowanie modeli]
    C2[Ocena wyników modelowania]
    C3[Wybór najlepszego modelu]
  end
    A2 --połączenie zestawu z 12 komponentami--> Modelowanie
    B3 --> Modelowanie
    C0 --> C1 --> C2 --> C3
    Modelowanie --> SHAP
  subgraph SHAP ["IV. Interpretacja wyników modelowania"]
    D1[Obliczanie wartości SHAP]
  end
    D2[\Wykresy ważności zmiennych\]
    D3[\Wykresy zależności\]
    D4[\Mapy wpływu komponentów\]
    SHAP --> D2
    SHAP --> D3
    SHAP --> D4
    
    %%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
    %%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
    
    classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
    classDef dane_element fill:white;
    class PCA dane;
    class A1,A2 dane_element;
    

Analiza składowych głównych (PCA)

Analiza głównych składowych (ang. PCA, Principal Component Analysis) to najpopularniejsza metoda redukcji wymiarów danych na podstawie wariancji zbioru. PCA stosuje się w przypadku wielowymiarowych danych, aby zmniejszyć liczbę zmiennych zachowując jak najwięcej informacji (zmienności) oryginalnych danych w celu łatwiejszej interpretacji.

PCA wyszukuje kombinacji zmiennych, które najlepiej opisują różnice między obserwacjami, a następnie tworzy nowe kombinacje zwane składowymi głównymi (komponentami).



Celem wykonania PCA było zredukowanie pozyskanego zbioru zmiennych społeczno-demograficznych do kilkunastu najważniejszych składowych głównych opisujących profile społeczno-demograficzne bez utraty dużej ilości informacji w trzech etapach:


Analiza składowych głównych (PCA)

Etap I

Etap przygotowania danych obejmował wybór jak największej liczby zmiennych, które uwzględniają możliwie szerokie spektrum charakterystyk społeczno-demograficznych, reprezentujących różne aspekty struktury społecznej i warunków życia mieszkańców.


Spośród ok. 1100 dostępnych zmiennych (zależnie od zakresu lat) pozyskano i odpowiednio przygotowano 77 zmiennych ujednoliconych dla każdego roku wyborczego (2008, 2012, 2016, 2020, 2024), pogrupowanych w pięć kategorii: płeć, wykształcenie, dochód, rasa i pochodzenie etniczne, a także zawód i status zatrudnienia.


Zbiór zmiennych dla każdego roku połączono w jedną ramkę danych obejmującą ponad 15,5 tys. rekordów dla wszystkich hrabstw USA z wyłączeniem Portoryko (ok. 3140 dla każdego roku wyborczego).

Analiza składowych głównych (PCA)

Etap II

Na gotowym zbiorze danych wykonano PCA, a następnie zawężono go do 39 zmiennych mających największy wpływ na wariancję. Zmienne te zostały wybrane ze względu na istotny wpływ (powyżej 1,5%) na najważniejsze składowe główne.

Analiza składowych głównych

Gotowy zbiór danych obejmował 39 zmiennych w podziale na 9 kategorii:

Wiek

age_0_17

age_18_34

age_35_64

Obywatelstwo

cit_us_citizen

cit_not_us_citizen

cit_us_citizen_nat

Edukacja

edu_basic

edu_medium

edu_high

Mobilność

mobility_same_house

mobility_different_house

mobility_same_city

Pozostałe

pop

lang_only_english

tenure_owner_occupied

Dochód

income_less_30

income_over_75

median_income

agg_income

pov_over_1

housevalue_median

Stan cywilny

marriage_never_married

marriage_married

Rasa

race_white

race_black

race_am

race_hispanic

Zatrudnienie

workers_goverment

workers_self

work_management

work_production

work_sales

ind_manufacturing

ind_agriculture

ind_public_adm

ind_prof_services

empl_civilian_employed

empl_not_in_labor

::: :::

Analiza składowych głównych

Etap III

Na podstawie uzyskanych wyników dla 39 zmiennych wybrano zbiór danych ograniczający się do 12 nieskorelowanych składowych głównych, które łącznie wyjaśniały 87,4% całkowitej wariancji zbioru danych.

Analiza składowych głównych

Na podstawie wyników PCA wyodrębniono czynniki ładunkowe (ang. loadings), czyli współczynniki korelacji zmiennych z poszczególnymi składowymi głównymi. Pokazują one, jak silnie dana zmienna przyczynia się do danego komponentu.

Wysokie wartości dodatnie oznaczają silną korelację dodatnią danej zmiennej ze składową główną, wysokie wartości ujemne natomiast – silną korelację ujemną pomiędzy zmienną a składową.

Najtrudniejszym aspektem analizy wyników była szczegółowa interpretacja znaczenia poszczególnych komponentów jako profili społeczno-demograficznych kształtujących wzorce wyborcze

Analiza składowych głównych

Szczegółową interpretację wspierało zbadanie wpływu zmiennych na budowanie poszczególnych składowych głównych, umożliwiające identyfikację tych o największym udziale w tworzeniu komponentu.

Kolorem czerwonym oznaczono zmienne o ładunku ujemnym, kolorem niebieskim natomiast – te o ładunku dodatnim.


Dla pierwszej składowej głównej największym wpływem odznaczały się zmienne z wartością wpływu powyżej 6,5%, – osoby z wykształceniem wyższym i będące obywatelami USA poprzez naturalizację.

Analiza składowych głównych

Uzupełnieniem interpretacji była także identyfikacja ładunków czynnikowych każdej zmiennej, ukazująca kierunek i siłę ich powiązań ze składową główną w podziale na kategorie.


Dla pierwszego komponentu największy negatywny wpływ mają zmienne opisujące osoby z wyższym wykształceniem oraz obywateli USA uzyskanych poprzez naturalizację – im większy ich udział, tym niższa wartość komponentu.


Największe dodatnie wartości ładunku mają zmienne opisujące populacje o większym udziale obywateli USA oraz ze średnim wykształceniem – czym większy ich udział, tym wyższa wartość komponentu pierwszego.

Analiza składowych głównych

Wyniki PCA obejmują także możliwość interpretacji wartości składowych głównych (ang. component scores) dla wszystkich rekordów zbioru danych (hrabstw).


Przedstawiają one pozycję każdej obserwacji względem danego komponentu i pozwalają ocenić, które obszary mają wysoki lub niski poziom danej złożonej cechy reprezentowanej przez komponent.


Component scores nie posiadają jednostek fizycznych, lecz operują na nowej przestrzeni wartości utworzonej przez składowe główne (komponenty).


Wysoka wartość dodatnia component score oznacza, że dane hrabstwo silnie przejawia wzorzec opisany przez składową (czyli przez zmienne o wysokich ładunkach dla tego komponentu). Wysoka wartość ujemna – że jest temu wzorcowi przeciwna.

Analiza składowych głównych

Analiza składowych głównych

Analiza składowych głównych

Analiza składowych głównych

Analiza składowych głównych

Analiza składowych głównych

W oparciu o wyniki PCA zaprezentowane przykładowo dla pierwszego komponentu, można opisać go jako profil społeczno-demograficzny różnicujący hrabstwa charakteryzujące się bardziej jednorodną, mniej zamożną i słabiej wykształconą społecznością mieszkającą na peryferiach od bardziej zurbanizowanej, wykształconej, zamożnej i zróżnicowanej demograficznie.


Na podstawie interpretacji szerokich wyników PCA opisano każdy z 12 komponentów jako profil społeczno-demograficzny wyborców, co pozwoliło na lepszą interpretację wyników uzyskanych na etapie modelowania i interpretacji modelu uczenia maszynowego.

Uczenie maszynowe

flowchart TB
  subgraph przygotowanie_danych ["I. Przygotowanie danych"]
    A1[/Przygotowanie zmiennych demograficznych/]
    A2[/Pozyskanie wyników wyborczych/]
  end
  subgraph PCA ["II. Analiza składowych głównych"]
    direction LR
    B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
    B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
  end  
    B3[\Zbiór 12 komponentów\]
    B4[\Tabela ładunków czynnikowych\]
    B5[\Mapy wartości składowych głównych\]
    B6[\Wpływ zmiennych na składowe główne\]
    A1 --> PCA
    B1 --> B2 
    PCA --> B3
    PCA --> B4
    PCA --> B5
    PCA --> B6
  subgraph Modelowanie ["III. Uczenie maszynowe"]
    direction LR
    C0[Połączenie i przygotowanie danych]
    C1[Trenowanie modeli]
    C2[Ocena wyników modelowania]
    C3[Wybór najlepszego modelu]
  end
    A2 --połączenie zestawu z 12 komponentami--> Modelowanie
    B3 --> Modelowanie
    C0 --> C1 --> C2 --> C3
    Modelowanie --> SHAP
  subgraph SHAP ["IV. Interpretacja wyników modelowania"]
    D1[Obliczanie wartości SHAP]
  end
    D2[\Wykresy ważności zmiennych\]
    D3[\Wykresy zależności\]
    D4[\Mapy wpływu komponentów\]
    SHAP --> D2
    SHAP --> D3
    SHAP --> D4
    
    %%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
    %%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
    
    classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
    classDef dane_element fill:white;
    class Modelowanie dane;
    class C0,C1,C2,C3 dane_element;
    

Uczenie maszynowe

Techniki uczenia maszynowego to metody obliczeń wykorzystywane do automatycznej nauki komputera na podstawie zbiorów danych. Zamiast tworzenia własnych algorytmów, techniki te wykorzystują gotowe modele niezależne od danych wejściowych.

W przypadku złożonych zbiorów danych uczenie maszynowe zastępuje tradycyjne metody statystyczne, które są nieskuteczne dla nieliniowych zależności pomiędzy zmiennymi.


W analizie wykorzystano model regresyjny w ramach uczenia nadzorowanego – celem trenowania modelu nie była predykcja, lecz zbadanie wpływu zmiennych objaśniających na zmienną objaśnianą w celu późniejszej interpretacji.

Uczenie maszynowe

Zmiennymi objaśniającymi był zbiór 12 składowych głównych, zmienną objaśnianą natomiast – przekształcona wartość wyniku wyborczego, wyrażona jako znormalizowana różnica głosów pomiędzy kandydatem Demokratów (od -1 do 0) a Republikanów (od 0 do 1).

Uczenie maszynowe

Ze względu na charakter danych oraz zdolność do uchwycenia złożonych, nieliniowych zależności między zmiennymi, do trenowania wybrano trzy modele regresyjne:

  • Random Forest – buduje wiele drzew na losowych próbkach danych i cech
  • Extra Trees – działa jak Random Forest, lecz wprowadza dodatkową losowość w wyborze punktów podziału w drzewach
  • XGBoost – tworzy drzewa sekwencyjnie korygując błędy poprzednich


W celu dobrania optymalnego ustawienia modeli wspomagano się tuningiem hiperparametrów, który ma na celu poprawę wydajności modelu poprzez odpowiedni dobór jego parametrów technicznych, takich jak głębokość drzew czy liczba iteracji.

Uczenie maszynowe

Dla każdego wytrenowanego modelu wykonano ocenę jego jakości, wyróżniając cztery najważniejsze statystyki: RMSE, R2, Bias oraz wariancję.


Ze względu na najlepszą jakość modelu XGBoost, zdecydowano się wybrać go do dalszej interpretacji, aby zapewnić najbardziej wiarygodne wyniki.

Uczenie maszynowe

flowchart TB
  subgraph przygotowanie_danych ["I. Przygotowanie danych"]
    A1[/Przygotowanie zmiennych demograficznych/]
    A2[/Pozyskanie wyników wyborczych/]
  end
  subgraph PCA ["II. Analiza składowych głównych"]
    direction LR
    B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
    B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
  end  
    B3[\Zbiór 12 komponentów\]
    B4[\Tabela ładunków czynnikowych\]
    B5[\Mapy wartości składowych głównych\]
    B6[\Wpływ zmiennych na składowe główne\]
    A1 --> PCA
    B1 --> B2 
    PCA --> B3
    PCA --> B4
    PCA --> B5
    PCA --> B6
  subgraph Modelowanie ["III. Uczenie maszynowe"]
    direction LR
    C0[Połączenie i przygotowanie danych]
    C1[Trenowanie modeli]
    C2[Ocena wyników modelowania]
    C3[Wybór najlepszego modelu]
  end
    A2 --połączenie zestawu z 12 komponentami--> Modelowanie
    B3 --> Modelowanie
    C0 --> C1 --> C2 --> C3
    Modelowanie --> SHAP
  subgraph SHAP ["IV. Interpretacja wyników modelowania"]
    D1[Obliczanie wartości SHAP]
  end
    D2[\Wykresy ważności zmiennych\]
    D3[\Wykresy zależności\]
    D4[\Mapy wpływu komponentów\]
    SHAP --> D2
    SHAP --> D3
    SHAP --> D4
    
    %%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
    %%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
    
    classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
    classDef dane_element fill:white;
    class SHAP dane;
    class C0,C1,C2,C3 dane_element;
    

Interpretacja wyników modelowania

Podsumowanie







Autorzy: Adrian Nowacki, Anna Dmowska, Jarosław Jasiewicz

Materiały

Prezentacja:


Oprogramowanie: Język R,

Literatura:


Kontakt

adrian.nowacki@amu.edu.pl

anna.dmowska@amu.edu.pl

jaroslaw.jasiewicz@amu.edu.pl